package com.starmark.sys.org.api.service;



import com.starmark.sys.org.api.dto.OrgDepartmentInfoDto;
import com.starmark.sys.org.api.dto.OrgElementDto;

import java.util.List;

/**
 * 部门接口
 */
public interface IOrgDepartmentApiService {


    /**
     * 通过关键字查找部门信息
     *
     * @param searchKey 关键字
     * @param pageSize  页码
     * @return 部门信息
     */
    List<OrgElementDto> getOrgTreeBySearchkey(String searchKey,
                                              int pageSize);


    /**
     * 通过父节点，查找下级部门信息
     *
     * @param id 父ID 为空时，查找根部门信息
     * @return 人员信息集合
     */
    List<OrgElementDto> getOrgTreeById(String id);


    /**
     * 通过父节点，查找下级部门信息
     *
     * @param ids  部门ID集合
     * @return 部门简单信息集合
     */

    List<OrgDepartmentInfoDto> findDepartListByIds(List<String> ids);




    /**
     * 通过部门ID查找部门的相关信息
     *
     * @param id 部门ID
     * @return 部门信息
     */

    OrgDepartmentInfoDto findDepartInfoById(String id);


    /**
     * 通过部门ID获取部门名称
     *
     * @param id 部门ID
     * @return 部门名称
     */
    default  String getName(String id){
        return this.findDepartInfoById(id).getName();
    }
}



